package com.ruoyi.kanban.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.kanban.domain.DeliveryOrder;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 送货单Mapper接口
 */
public interface DeliveryOrderMapper extends BaseMapper<DeliveryOrder> {
    /**
     * 查询指定前缀（包含日期）的当日发货单号最大后缀值（后四位），如 SH20250117-0008 返回 8。
     * 当不存在记录时返回 null。
     *
     * 说明：这里通过匹配 delivery_code LIKE CONCAT(seqKey, '-%') 来限定当天，
     * 因为 seqKey 自身已包含日期，如 SHYYYYMMDD。
     */
    @Select("SELECT MAX(CAST(RIGHT(delivery_code, #{length}) AS UNSIGNED))\n"
          + "FROM delivery_order\n"
          + "WHERE del_flag = 0\n"
          + "  AND delivery_code LIKE CONCAT(#{seqKey}, '-%')")
    Integer selectMaxSuffixBySeqKey(@Param("seqKey") String seqKey, @Param("length") Integer length);
}